import 'package:flutter/material.dart';

void main() {
  runApp(MaterialApp(home: MyHome()));
}

class MyHome extends StatefulWidget {
  const MyHome({super.key});

  @override
  State<MyHome> createState() {
    debugPrint('createState');
    return _MyHomeState();
  }
}

class _MyHomeState extends State<MyHome> {
  // 年龄状态
  int age = 18;

  // 2. 组件被初始化时调用
  // 一般用于: 对组件变量赋值, 请求网络数据, 更新状态
  @override
  void initState() {
    debugPrint('initState');
    super.initState();
  }

  // 3. 状态组件的依赖项发生变化时调用
  // 只会被执行1次
  @override
  void didChangeDependencies() {
    debugPrint('didChangeDependencies');
    super.didChangeDependencies();
  }

  /// 5. 组件即将销毁时自动调用的
  @override
  void deactivate() {
    debugPrint('deactivate');
    super.deactivate();
  }

  /// 6. 组件销毁时自动调用的
  @override
  void dispose() {
    debugPrint('dispose');
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    debugPrint('build');
    return Scaffold(
      // 1.1 导航
      appBar: AppBar(
        backgroundColor: Colors.pink,
        title: const Text('大风天'),
      ),
      // 1.2 主体部分
      body: GestureDetector(
        onTap: () {
          setState(() {
            age += 10;
          });
        },
        child: Center(
          // GestureDetector 绑定事件
          child: GestureDetector(
            onTap: () {
              setState(() {
                age += 2;
              });
            },
            child: Text(
              '不要晒被子+$age',
              textDirection: TextDirection.ltr,
              style: TextStyle(
                  fontSize: 30.0,
                  color: Colors.red,
                  fontWeight: FontWeight.bold),
            ),
          ),
        ),
      ),
    );
  }
}
